﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EntitiesLayer
{
    public sealed class Pago : IEntity
    {

        private readonly int idPago;
        public int Id {
            get { return idPago; }
        }

        private readonly int idCliente;
        public int IdCliente{
            get{return idCliente;}
        }
        private readonly DateTime fechaDePago;

        public DateTime FechaDePago
        {
            get { return fechaDePago; }
          
        }

        private readonly TipoPago tipo;
        public   TipoPago Tipo {
            get { return tipo; }
        }

        private readonly decimal montoPagado;

        public  decimal MontoPagado
        {
            get { return montoPagado; }
            
        }

        private readonly int diasEfectivos;
        public   int DiasEfectivos {
            get { return diasEfectivos; }
        }

        public Pago(int idCliente ,decimal montoPagado, DateTime fechaDePago, TipoPago tipo, int diasEfectivos, int idPago=0) {

            if (montoPagado <0 )
                throw new ArgumentException("El monto no puede ser menor ");
            
            this.idCliente = idCliente;
            this.fechaDePago = fechaDePago;
            this.montoPagado = montoPagado;
            this.idPago=idPago;
            this.diasEfectivos = diasEfectivos;
            this.tipo = tipo;
        }


        public Pago(int idCliente, TipoPago tipo) : this(idCliente,0, DateTime.Now, tipo,0) { }

        

  

      
    
    }
}
